<?php
/**
* @version	1.0 msTableRegion.php marum56
* @package	Joomla.Framework
* @subpackage	Table
* @copyright	Copyright (C) 2010 Open Source, All rights reserved.
*/

// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

/**
 * Producent table
 *
 * @package 	Joomla.Framework
 * @subpackage	Table
 * @since	1.0
 */
class msTableRegion extends msTable
{
	/**
	 * Numer identyfikujący grupę
	 * @var int
	 */
	var $gid		= null;

	/**
	 * Nr regionu
	 * @var string
	 */
	var $nrr			= null;
	
	/**
	 * Nazwa regionu
	 * @var string
	 */
	var $n_reg			= null;

	/**
	 * Klucz obcy do tabeli "jos_users" pole "pesel"
	 * @var int
	 */
	var $users		= null;	
		
	/**
	 * Znacznik usuniecia
	 *
	 * @var int
	 */
	var $del		= null;
	
	/**
	 * Description
	 * @var datetime
	 */
	var $registerDate	= null;
	
	/**
	 * Nazwa usera, który rejestrował/wyrejestrował.
	 * @var string
	 */
	var $whoRegister	= null;
	
	

	/**
	* @param database A database connector object
	*/
	function __construct( &$db )
	{
		parent::__construct( '#__regiony', 'gid', $db );
	}
	

	/**
	 * Validation and filtering
	 *
	 * @return boolean True is satisfactory
	 */
	function check()
	{		
		// Sprawdz czy istnieje już ta nazwa dla rekordów nie usunietych (del=0) 
		$query = 'SELECT nrr'
		. ' FROM #__regiony AS a '
		. ' WHERE n_reg = ' . $this->_db->Quote($this->n_reg)
		. ' AND gid != '. (int) $this->gid
		. ' AND a.del = 0'
		. ' AND a. registerDate = (SELECT max(registerDate) 
		                           FROM #__regiony
		                           WHERE gid = a.gid)'
		;

		$this->_db->setQuery( $query );
		$x = intval( $this->_db->loadResult() );
		
		if ($x && $x != intval( $this->nr_reg )) {
			$this->setError( 'Region o tej nazwie już istnieje.');
			return false;
		}

		
		// Sprawdz czy istnieje już ten numer dla rekordów nie usunietych (del=0) 
		$query = 'SELECT id'
		. ' FROM #__regiony AS a '
		. ' WHERE nrr = ' . $this->_db->Quote($this->nrr)
		. ' AND gid != '. (int) $this->gid
		. ' AND a.del = 0'
		. ' AND a. registerDate = (SELECT max(registerDate) 
		                           FROM #__regiony
		                           WHERE gid = a.gid)'
		;
		$this->_db->setQuery( $query );
		$x = intval( $this->_db->loadResult() );
		
		if ($x && $x != intval( $this->id )) {
			$this->setError( 'Region o tym numerze już istnieje.');
			return false;
		}
		
		return true;
	}
}
